package com.example.wechat.login.dto.speech;

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

/**
 * 语音识别任务请求DTO
 */
@Data
public class SpeechTaskRequest {

    /**
     * 音频文件
     */
    private MultipartFile file;
    /**
     * 语音文件URL
     */
    private String audioUrl;



    /**
     * 语音识别的引擎类型
     * 8k_zh：电话 8k 中文普通话通用
     * 16k_zh：16k 中文普通话通用
     * 16k_en：16k 英语
     * 16k_ca：16k 粤语
     */
    private String engineType = "16k_zh";

    /**
     * 语音声道数
     * 1：单声道
     * 2：双声道
     */
    private Integer channelNum = 1;

    /**
     * 回调URL，用于接收识别结果
     */
    private String callbackUrl;

    /**
     * 是否过滤脏词（目前支持中文普通话引擎）
     * 0：不过滤脏词
     * 1：过滤脏词
     * 2：替换脏词
     */
    private Integer filterDirty = 0;

    /**
     * 是否过语气词（目前支持中文普通话引擎）
     * 0：不过滤语气词
     * 1：部分过滤
     * 2：严格过滤
     */
    private Integer filterModal = 0;

    /**
     * 是否进行阿拉伯数字智能转换（目前支持中文普通话引擎）
     * 0：不转换，直接输出中文数字
     * 1：根据场景智能转换为阿拉伯数字
     */
    private Integer convertNumMode = 1;

    /**
     * 是否开启说话人分离
     * 0：不开启
     * 1：开启
     */
    private Integer speakerDiarization = 0;

    /**
     * 说话人分离人数（需先开启说话人分离功能）
     * 取值范围：0-10
     * 0：自动分离（最多分离出20个人）
     * 1-10：指定人数分离
     */
    private Integer speakerNumber = 0;
}
